package org.chnxi.study.leetcode.questions25.ques1;

import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;

/**
 * 通过HashMap的方式查找另外一个整数
 * 执行用时 :3 ms, 在所有 Java 提交中击败了78.76%的用户
 * 内存消耗 :39.9 MB, 在所有 Java 提交中击败了5.06%的用户
 */
public class Simple2 {

    public static void main(String[] args) {
        int[] nums = {3,3};
        int[] idx = towSum(nums , 6);
        System.out.println(Arrays.toString(idx));
    }

    public static int[] towSum(int[] nums , int target){
        Map<Integer , Integer> numsMap = new HashMap<Integer , Integer>(nums.length , 1);
        for (int i = 0; i < nums.length; i++){
            numsMap.put(nums[i] , i);
        }

        for (int i=0; i < nums.length; i++){
            int other = target - nums[i];
            //需要注意，不能获取到当前数的索引
            if(numsMap.get(other) != null && numsMap.get(other) != i) {
                return new int[]{i , numsMap.get(other)};
            }
        }
        return null;
    }

}
